/**
 * Notes: 角色枚举定义
 * Date: 2025-03-24
 * Ver : 1.0.0
 */

// 角色枚举常量，用于定义系统中所有可能的角色
const RoleEnum = {
    // 基础角色
    ADMIN: 'admin', // 管理员
    USER: 'user',   // 普通用户

    // 特定业务角色
    RESEARCH_MANAGER: 'research_manager',   // 研发经理
    RESEARCH_MEMBER: 'research_member',     // 研发成员
    PROJECT_MANAGER: 'project_manager',     // 项目经理
    DEPARTMENT_LEADER: 'department_leader', // 部门领导
    TECH_LEADER: 'tech_leader',             // 技术主管
    QUALITY_INSPECTOR: 'quality_inspector', // 质量检查员
    TESTER: 'tester',                       // 测试人员
    CUSTOMER: 'customer',                   // 客户

    // 获取角色显示名称
    getName: function(roleCode) {
        const roleNames = {
            'admin': '系统管理员',
            'user': '普通用户',
            'research_manager': '研发经理',
            'research_member': '研发成员',
            'project_manager': '项目经理',
            'department_leader': '部门领导',
            'tech_leader': '技术主管',
            'quality_inspector': '质量检查员',
            'tester': '测试人员',
            'customer': '客户'
        };
        
        return roleNames[roleCode] || '未知角色';
    },
    
    // 获取所有角色列表
    getAllRoles: function() {
        return [
            { code: this.ADMIN, name: '系统管理员' },
            { code: this.USER, name: '普通用户' },
            { code: this.RESEARCH_MANAGER, name: '研发经理' },
            { code: this.RESEARCH_MEMBER, name: '研发成员' },
            { code: this.PROJECT_MANAGER, name: '项目经理' },
            { code: this.DEPARTMENT_LEADER, name: '部门领导' },
            { code: this.TECH_LEADER, name: '技术主管' },
            { code: this.QUALITY_INSPECTOR, name: '质量检查员' },
            { code: this.TESTER, name: '测试人员' },
            { code: this.CUSTOMER, name: '客户' }
        ];
    }
};

module.exports = RoleEnum; 